{
  "title": "EOYSnippet",
  "description": "Fundraising Snippet",
  "version": "1.1.0",
  "type": "object",
  "definitions": {
    "plainText": {
      "description": "Plain text (no HTML allowed)",
      "type": "string"
    },
    "richText": {
      "description": "Text with HTML subset allowed: i, b, u, strong, em, br",
      "type": "string"
    },
    "link_url": {
      "description": "Target for links or buttons",
      "type": "string",
      "format": "uri"
    }
  },
  "properties": {
    "donation_form_url": {
      "type": "string",
      "description": "Url to the donation form."
    },
    "currency_code": {
      "type": "string",
      "description": "The code for the currency. Examle gbp, cad, usd.",
      "default": "usd"
    },
    "locale": {
      "type": "string",
      "description": "String for the locale code.",
      "default": "en-US"
    },
    "text": {
      "allOf": [
        {"$ref": "#/definitions/richText"},
        {"description": "Main body text of snippet. HTML subset allowed: i, b, u, strong, em, br"}
      ]
    },
    "text_color": {
      "type": "string",
      "description": "Modify the text message color"
    },
    "background_color": {
      "type": "string",
      "description": "Snippet background color."
    },
    "highlight_color": {
      "type": "string",
      "description": "Paragraph em highlight color."
    },
    "donation_amount_first": {
      "type": "number",
      "description": "First button amount."
    },
    "donation_amount_second": {
      "type": "number",
      "description": "Second button amount."
    },
    "donation_amount_third": {
      "type": "number",
      "description": "Third button amount."
    },
    "donation_amount_fourth": {
      "type": "number",
      "description": "Fourth button amount."
    },
    "selected_button": {
      "type": "string",
      "description": "Default donation_amount_second. Donation amount button that's selected by default.",
      "default": "donation_amount_second"
    },
    "icon": {
      "type": "string",
      "description": "Snippet icon. 64x64px. SVG or PNG preferred."
    },
    "icon_dark_theme": {
      "type": "string",
      "description": "Snippet icon. Dark theme variant. 64x64px. SVG or PNG preferred."
    },
    "title": {
      "allOf": [
        {"$ref": "#/definitions/plainText"},
        {"description": "Snippet title displayed before snippet text"}
      ]
    },
    "title_icon": {
      "type": "string",
      "description": "Small icon that shows up before the title / text. 16x16px. SVG or PNG preferred. Grayscale."
    },
    "title_icon_dark_theme": {
      "type": "string",
      "description": "Small icon that shows up before the title / text. Dark theme variant. 16x16px. SVG or PNG preferred. Grayscale."
    },
    "button_label": {
      "allOf": [
        {"$ref": "#/definitions/plainText"},
        {"description": "Text for a button next to main snippet text that links to button_url. Requires button_url."}
      ]
    },
    "button_color": {
      "type": "string",
      "description": "The text color of the button. Valid CSS color."
    },
    "button_background_color": {
      "type": "string",
      "description": "The background color of the button. Valid CSS color."
    },
    "block_button_text": {
      "type": "string",
      "description": "Tooltip text used for dismiss button."
    },
    "monthly_checkbox_label_text": {
      "type": "string",
      "description": "Label text for monthly checkbox.",
      "default": "Make my donation monthly"
    },
    "test": {
      "type": "string",
      "description": "Different styles for the snippet. Options are bold and takeover."
    },
    "do_not_autoblock": {
      "type": "boolean",
      "description": "Used to prevent blocking the snippet after the CTA (link or button) has been clicked"
    },
    "links": {
      "additionalProperties": {
        "url": {
          "allOf": [
            {"$ref": "#/definitions/link_url"},
            {"description": "The url where the link points to."}
          ]
        },
        "metric": {
          "type": "string",
          "description": "Custom event name sent with telemetry event."
        },
        "args": {
          "type": "string",
          "description": "Additional parameters for link action, example which specific menu the button should open"
        }
      }
    }
  },
  "additionalProperties": false,
  "required": ["text", "donation_form_url", "donation_amount_first", "donation_amount_second", "donation_amount_third", "donation_amount_fourth", "button_label", "currency_code"],
  "dependencies": {
    "button_color": ["button_label"],
    "button_background_color": ["button_label"]
  }
}

